﻿using MgSoft.K3Cloud.WebApi.Common.Dto.Property;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;

namespace MgSoft.K3Cloud.WebApi.Common.Dto.Gl
{
    /// <summary>
    /// 凭证查询Dto_分录
    /// </summary>
    public class Gl_VoucherGetOutputDto_Entry<Account_Type,Detail_Type,ExchangeRateType_Type> 
        where Account_Type : Gl_VoucherGetOutputDto_Entry_Account
        where Detail_Type : Gl_VoucherGetOutputDto_Entry_Detail
        where ExchangeRateType_Type : Gl_VoucherGetOutputDto_Entry_ExchangeRateType
    {
        /// <summary>
        /// 分录内码
        /// </summary>
        public int Id { get; set; }
        /// <summary>
        /// 序号
        /// </summary>
        public int Seq { get; set; }
        /// <summary>
        /// 摘要
        /// </summary>
        public string FExplanation { get; set; }
        /// <summary>
        /// 科目Id
        /// </summary>
        public int FAccountId_Id { get; set; }
        /// <summary>
        /// 科目
        /// </summary>
        public Account_Type FAccountId { get; set; }
        /// <summary>
        /// 核算维度Id
        /// </summary>
        public int DetailID_Id { get; set; }
        /// <summary>
        /// 核算维度
        /// </summary>
        public Detail_Type DetailID { get; set; }
        /// <summary>
        /// 币别Id
        /// </summary>
        public int FCurrencyId_Id { get; set; }
        /// <summary>
        /// 币别
        /// </summary>
        public KeyValueProperty FCurrencyId { get; set; }
        /// <summary>
        /// 汇率类型Id
        /// </summary>
        public int ExchangeRateType_Id { get; set; }
        /// <summary>
        /// 汇率类型
        /// </summary>
        public ExchangeRateType_Type ExchangeRatetype { get; set; }
        /// <summary>
        /// 汇率
        /// </summary>
        public float ExchangeRateType { get; set; }
        /// <summary>
        /// 原币金额
        /// </summary>
        public float AmountFor { get; set; }
        /// <summary>
        /// 借方金额
        /// </summary>
        public float Debit { get; set; }
        /// <summary>
        /// 贷方金额
        /// </summary>
        public float FCredit { get; set; }
        /// <summary>
        /// 借贷方向
        /// </summary>
        public string DC { get; set; }
        /// <summary>
        /// 结算方式Id
        /// </summary>
        public int SettleTypeID_Id { get; set; }
        /// <summary>
        /// 结算方式
        /// </summary>
        public object SettleTypeID { get; set; }
        /// <summary>
        /// 本位币金额
        /// </summary>
        public float FAmount { get; set; }
        /// <summary>
        /// 结算号
        /// </summary>
        public string FSettleNo { get; set; }
        /// <summary>
        /// 是否已指定现金流量
        /// </summary>
        public bool FCashFlowItem { get; set; }
        /// <summary>
        /// 是否参与多栏账汇总
        /// </summary>
        public bool FIsMulttcollect { get; set; }
        /// <summary>
        /// 数量
        /// </summary>
        public float Qty { get; set; }
        /// <summary>
        /// 单价
        /// </summary>
        public float Price { get; set; }
        /// <summary>
        /// 单位Id
        /// </summary>
        public int UnitId_Id { get; set; }
        /// <summary>
        /// 单位
        /// </summary>
        public object UnitId { get; set; }
        /// <summary>
        /// 科目单位数量
        /// </summary>
        public float AcctUnitQty { get; set; }
        /// <summary>
        /// 计量单位数量
        /// </summary>
        public float BaseUnitQty { get; set; }
        /// <summary>
        /// 上移下移之前的分录内码
        /// </summary>
        public int OldEntryId { get; set; }
        /// <summary>
        /// 现金流量#分录ID
        /// </summary>
        public int ExportEntryId { get; set; }
        /// <summary>
        /// 业务编号
        /// </summary>
        public string BusNo { get; set; }
        /// <summary>
        /// 核算维度组合
        /// </summary>
        /// public object DetailDcombination { get; set; }
    }

    public class Gl_VoucherGetOutputDto_Entry : Gl_VoucherGetOutputDto_Entry<
        Gl_VoucherGetOutputDto_Entry_Account, 
        Gl_VoucherGetOutputDto_Entry_Detail,
        Gl_VoucherGetOutputDto_Entry_ExchangeRateType>
    { }

}
